package 力扣题库;

import java.util.LinkedList;
import java.util.Queue;

public class p513找树左下角的值 {
    //相较递归
    //本题使用迭代法更容易理解：层序遍历，最后一层的第一个值就是 树左下角的值
    public int findBottomLeftValue(TreeNode root) {
        if (root==null) return -1;

        //使用队列进行层序遍历
        Queue<TreeNode> queue=new LinkedList<>();
        queue.offer(root);
        int res=0;

        while (!queue.isEmpty()) {
            int size=queue.size();
            for (int i = 0; i < size; i++) {
                TreeNode poll=queue.poll();
                if (i==0) {
                    res=poll.val;
                }
                if (poll.left!=null) {
                    queue.offer(poll.left);
                }
                if (poll.right!=null) {
                    queue.offer(poll.right);
                }
            }
        }
        return res;
    }
}
